A storage apparatus is used to save data. The storage apparatus may have a plurality of storage devices, such as hard disk drives (HDDs) or solid state drives (SSDs), and provides a large storage area. The storage apparatus is connected to a storage control apparatus which performs access control to write/read data to/from the storage devices. The storage apparatus may include the storage control apparatus.
The storage control apparatus may be provided with a plurality of processors which perform a plurality of input/output (I/O) processings. In this configuration, the plurality of processors perform the I/O processings in parallel to increase the speed of data access. In one proposal for example, when a plurality of microprocessors perform I/O processing, and when a load of one microprocessor is equal to or larger than a first load, a storage system assigns part of the I/O processing to another microprocessor. In another proposal, a storage apparatus assigns I/O processing to a plurality of main processors in accordance with usage rates of the main processors.
In another proposal, a single data-processing system divides a shared resource of a memory into units called partitions, and allocates the partitions to a plurality of processes or agents of the system. The system reallocates the shared resource by adding one portion of the shared resource to a partition which is being frequently used, and removing one portion of the shared resource from a partition which is being less frequently used. In the other proposal, in a shared multiprocessing system in which all processors communicate with each other via a shared main memory, while a first processor performs an application binary, another processor monitors the performance of the first processor to optimize the execution of the application binary.
By the way, a certain storage device uses a cache memory whose access speed is faster than the storage devices. For example, for increasing the speed of data access, a storage control apparatus stores data, which is likely to be accessed, in the cache memory; then reads the data not from a storage device but from the cache memory when the data is requested by another apparatus; and then sends the data to the other apparatus.
See, for example, Japanese Laid-open Patent Publication No. 2007-249729, International Publication Pamphlet No. WO2014/049635, Japanese Laid-open Patent Publication No. 2004-164607, and Japanese Laid-open Patent Publication No. 2004-110824.
The cache memory has a limited capacity of storage. Thus, the storage control apparatus may manage a plurality of unit areas, which are being used, of the cache memory by using data (referred to also as a link or linked lists) having list structures. In addition, the storage control apparatus may use an algorithm, such as the LRU (least recently used), to reuse the unit areas. In this case, the operation to the link is exclusively performed by a process which has acquired an exclusion resource. Thus, the link is not simultaneously operated by a plurality of processes, so that the consistency of operation result to data is kept. However, when the unit areas of the cache memory are managed by using the single link, other processes will wait to acquire the exclusion resource. This lowers the degree of parallel processing to access a storage apparatus.